//
//  MainViewController.swift
//  WBTest
//
//  Created by 张海峰 on 2017/7/20.
//  Copyright © 2017年 张海峰. All rights reserved.
//

import UIKit

class MainViewController: UITabBarController {
    //由于对button做了扩展，即可以用便利构造函数，也可以用类方法。
    private lazy var composeBtn : UIButton = UIButton.creatButton(imageName: "", bgImageName: "加号")
    //MARK:- 系统回调函数
    //调整tabBar 一定要在 viewWillAppear 进行调整
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(true)
        setuptabBarItems()
    }
    override func viewDidLoad() {
        //设置局部tabBar 颜色
        // tabBar.tintColor =  UIColor.red
        super.viewDidLoad()
        setupComposeBtn()
    }
    private  func setupComposeBtn()
    {
        //1. 将composeBtn 添加到tabbar中
        tabBar.addSubview(composeBtn)
        //2. 设置位置
        composeBtn.center = CGPoint(x: tabBar.center.x,y: tabBar.bounds.size.height * 0.5)
        //3. 监听按钮的点击
        composeBtn.addTarget(self, action: #selector(composeBtnClick), for: .touchUpInside)
    }
    private  func setuptabBarItems()
    {
        //1.遍历所有的item
//        for i in 0..<tabBar.items!.count {
//            //2.获取item
//            let item = tabBar.items![i]
//            //3. 如果是下标值为2，则该item不能与用户交互
//            if i == 2 {
//                item.isEnabled = false
//                continue
//            }
//        }
    }
}
extension MainViewController
{
    //事件监听的本质发送消息，但发送消息是OC的特性
    //过程：将方法包装成@SEL —> 类中查找方法列表 -> 根据@SEL找到imp指针（函数指针）->执行函数
    //如果swift中将一个函数声明称 private 那么该函数不会被添加到方法的列表中
    // 如果想使用private 需在该声明欠加 @objc
    func composeBtnClick()
    {
        let composeVC = ComposeViewController()
       let nav =  UINavigationController.init(rootViewController: composeVC)
       present(nav, animated: true
            , completion: nil)
        
    }
}
